window.Runtime= new function () 
{
        /**
         * @private
         * A reference to the global object
         * @type {Object}
         */
    var GLOBAL= (function(){return this})()
   

    this.constructor.implement
    (
        {
            /**
             * Declare a class or object and its namespace. The namespace
             * object hierarchy will be generated, and will refer to the
             * object arguments
             * 
             * @param {String} namespace    A canonical class or object name
             * @param {Object} object       A class or object
             * @return {Object}
             */
            declare: function (namespace, object) 
            {
                var declared= this.namespace(namespace, object, GLOBAL);
                //console.info('declared: ' + namespace);
                return declared;
            }
            
            /**
             * Declare a namespace, optionally making the namespace a reference
             * 
             * 
             * @param {String} name
             * @param {Object} [object]
             * @param {Object} [startNode]
             * @return {Object}
             */
        ,   namespace: function (name, object, startNode) 
            {
                var nodes= String(name).split('.')
                ,   node= startNode || GLOBAL
                ,   lastNode
                ,   nodeName
                ,   i = 0
                ,   n = nodes.length
                ;
                
                while (i < n) 
                {
                    lastNode= node;
                    nodeName= nodes[i++];
                    node= (null == node[nodeName]) ? (node[nodeName] = {}) : node[nodeName];
                }
                
                return object ? (lastNode[nodeName] = object) : node;
            }
        }
    )
};